#ifndef PET_H
#define PET_H

#include <QObject>
#include <QString>

class Pet : public QObject
{
    Q_OBJECT
public:
    explicit Pet(QObject *parent = nullptr);

    void setName(const QString &name);
    QString getName() const;
    int getLevel() const;
    int getHunger() const;
    int getClean() const;
    int getPleasure() const;
    QString getStatusImage();
    bool isAlive() const;

    void inHunger(int value);
    void inClean(int value);
    void inPleasure(int value);

    void deHunger();
    void deClean();
    void dePleasure();

    void resetName(const QString &name);
    void setLevel(int level);
    void setHunger(int hunger);
    void setClean(int clean);
    void setPleasure(int pleasure);
    void reset();

signals:
    void statusChange();
    void levelUpSignal(int level);
    void gameOver();

private:
    QString m_name;
    int m_level;
    int m_hunger;
    int m_clean;
    int m_pleasure;
    void checkLevelUp();
};

#endif // PET_H
